/*
  工具函数
 */

//引入 xml2js 模块，将xml数据转化成js对象
const {parseString} = require('xml2js');

/*工具函数包*/
module.exports = {
    //获取用户数据
    getUserDataAsync(req){
        return new Promise((resolve,reject)=>{
            let xmlData='';
            req.on('data',data=>{
                //当流式数据传递过来时，会触发当前事件，会将数据注入到回调函数中
                console.log(data.toString())
                //读取的数据是buffer，需要将其转成字符串
                xmlData+=data.toString();
            }).on('end',()=>{
                //当前数据接收完毕时，回触发当前
                resolve(xmlData)
            })
        })
    },
    //将xml数据转化成js对象(xml对象值是数组)
    parseXMLAsync(xmlData){
        return new Promise((resolve,reject)=>{
            //trim 去除空格
            parseString(xmlData,{trim:true},(err,data)=>{
                if (!err){
                    resolve(data);
                }else {
                    reject('parseXMLAsync方法除了问题：'+err);
                }
            })
        })
    },
    //格式化数据
    formatMessage(xmlData){
        let message={};
        let data = xmlData.xml;
        //判断数据是否对象
        if(typeof data === 'object'){
            //遍历对象
            for (let key in data) {
                // 获取属性值
                let value = data[key];
                //过滤掉空的数据
                if (Array.isArray(value)&& value.length>0){
                    message[key]=value[0];
                }

            }
        }
        return message;
    }
}

